<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>タグファイルを開く方法は？ | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀一般トップへ</a>
        <li><div class="list-title">
    <span class="no">6171</span>
    <a class="thread-title" href="6171.html#6171">タグファイルを開く方法は？</a></div>
    <ul><li><div class="list-title">
    <span class="no">6173</span>
    <a class="thread-title" href="6171.html#6173">RE: タグファイルを開く方法は？</a></div>
    <ul><li><div class="list-title">
    <span class="no">6174</span>
    <a class="thread-title" href="6171.html#6174">Re2: タグファイルを開く方法は？</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">6175</span>
    <a class="thread-title" href="6171.html#6175">Re:タグファイルを開く方法は？</a></div>
    <ul><li><div class="list-title">
    <span class="no">6176</span>
    <a class="thread-title" href="6171.html#6176">Re2:タグファイルを開く方法は？</a></div>
    <ul><li><div class="list-title">
    <span class="no">6177</span>
    <a class="thread-title" href="6171.html#6177">Re3:タグファイルを開く方法は？</a></div>
    <ul><li><div class="list-title">
    <span class="no">6178</span>
    <a class="thread-title" href="6171.html#6178">Re4:タグファイルを開く方法は？</a></div>
    </li><li><div class="list-title">
    <span class="no">6181</span>
    <a class="thread-title" href="6171.html#6181">Re4:タグファイルを開く方法は？</a></div>
    </li></ul></li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=6171>
    <span class="no">[6171]</span>
    <a class="thread-title" href="#6171">タグファイルを開く方法は？</a>
    <span class="author">see</span>
    <time datetime="2007-07-27T06:50:41">2007年07月27日 06:50</time></h1>
    <div class="body">Grepした時に開く検索結果ウィンドウ（虫眼鏡のアイコン）ではダブルクリックでタグジャンプ出来ますが、このモードでファイルを開く方法を教えてください。<br>自分で作ったタグファイルや保存しておいた検索結果を再表示するのに使いたいのですが方法が分かりません。<br>マクロから「TraceOut」の結果が表示されるアウトプットウインドウも同じようにダブルクリックでタグジャンプ出来るようですが、何か設定があるのでしょうか？<br>コマンドラインの「-GREPMODE 」は検索起動専用のようです。</div></section>
    <ul><li><section><h1 id=6173>
    <span class="no">[6173]</span>
    <a class="thread-title" href="#6173">RE: タグファイルを開く方法は？</a>
    <span class="author">すい</span>
    <time datetime="2007-07-28T02:47:11">2007年07月28日 02:47</time></h1>
    <div class="body">&gt;Grepした時に開く検索結果ウィンドウ（虫眼鏡のアイコン）ではダブルクリックでタグジャンプ出来ますが、このモードでファイルを開く方法を教えてください。<br>&gt;自分で作ったタグファイルや保存しておいた検索結果を再表示するのに使いたいのですが方法が分かりません。<br><br>無理。<br>その機能はGrep結果ウィンドウのためだけの専用機能ですから。<br>設定 - 共通設定 - [検索]タブにて、逆にその機能を off にする事ならできますけど。<br>私はその機能が邪魔なので、エンターキーもダブルクリックもoffにしています。<br><br>どうしても、というならば<br>共通設定 - [キー割り当て] タブにて、<br>「ダブルクリックにタグジャンプの機能を割り当てる」<br>という方法ならあります。（常にダブルクリックでタグジャンプしてしまう）<br><br>「特定のファイル（特定の拡張子のファイルとか）でだけ、<br>　タグジャンプさせたい」<br>ならば、マクロを使えば可能でしょう。<br><br>次のようなマクロを用意する。<br><br>「現在編集中のファイル名を取得する。S_GetFilename()<br>　ファイル名が特定の条件を満たしているならタグジャンプする。<br>　条件を満たしていないなら「現在位置の単語選択」するとか。」<br><br>で、ダブルクリックに↑このマクロを登録する。<br></div></section>
    <ul><li><section><h1 id=6174>
    <span class="no">[6174]</span>
    <a class="thread-title" href="#6174">Re2: タグファイルを開く方法は？</a>
    <span class="author">see</span>
    <time datetime="2007-07-28T08:35:52">2007年07月28日 08:35</time></h1>
    <div class="body">▼ すいさん<br>&gt; &gt;Grepした時に開く検索結果ウィンドウ（虫眼鏡のアイコン）ではダブルクリックでタグジャンプ出来ますが、このモードでファイルを開く方法を教えてください。<br>－－－略－－－<br>&gt; 無理。<br>&gt; その機能はGrep結果ウィンドウのためだけの専用機能ですから。<br>－－－略－－－<br><br>回答ありがとうございます。無理ですか・・・。<br>Grep結果は検索即使用が原則という事でしょうか・・・<br><br>ダブルクリックをマクロに割り付けタグジャンプさせた場合はマクロ板の「[380] ダブルクリックにマクロを割り付けた時の挙動について」にあるような「変な反転表示状態」になります。<br>ジャンプ先のファイルがタグファイルに重ならないで開く場合には大丈夫な様ですが、新たに開く場合や最小化状態から復帰する場合にダブルクリックしたマウス位置が隠れる様にして開いた場合にはかなりの確率でおかしくなります。<br><br>かといってダブルクリックでタグジャンプできるアウトプットウインドウにタグファイルの内容を書き出すマクロを作るのも少し違和感がありますし、１つしか開けないのも問題です。<br>マクロでGrep結果ウインドウを作成・出力する機能でもあればまだ何とかなるのですが・・・<br></div></section>
    </li></ul></li><li><section><h1 id=6175>
    <span class="no">[6175]</span>
    <a class="thread-title" href="#6175">Re:タグファイルを開く方法は？</a>
    <span class="author">じゅうじ</span>
    <time datetime="2007-07-28T13:32:04">2007年07月28日 13:32</time></h1>
    <div class="body">▼ seeさん<br>&gt; Grepした時に開く検索結果ウィンドウ（虫眼鏡のアイコン）ではダブルクリックでタグジャンプ出来ますが、このモードでファイルを開く方法を教えてください。<br>&gt; 自分で作ったタグファイルや保存しておいた検索結果を再表示するのに使いたいのですが方法が分かりません。<br><br>１．適当なＧｒｅｐして、選択画面に目的のファイルを全選択して貼り付けるとか出来ます。<br>２．ダブルクリックにこだわらなければ、F12キーなら、普通の画面でもタグジャンプ出来ます。</div></section>
    <ul><li><section><h1 id=6176>
    <span class="no">[6176]</span>
    <a class="thread-title" href="#6176">Re2:タグファイルを開く方法は？</a>
    <span class="author">see</span>
    <time datetime="2007-07-30T10:38:57">2007年07月30日 10:38</time></h1>
    <div class="body">▼ じゅうじさん<br>&gt; ▼ seeさん<br>&gt; &gt; Grepした時に開く検索結果ウィンドウ（虫眼鏡のアイコン）ではダブルクリックでタグジャンプ出来ますが、このモードでファイルを開く方法を教えてください。<br>&gt; &gt; 自分で作ったタグファイルや保存しておいた検索結果を再表示するのに使いたいのですが方法が分かりません。<br>&gt; <br>&gt; １．適当なＧｒｅｐして、選択画面に目的のファイルを全選択して貼り付けるとか出来ます。<br>&gt; ２．ダブルクリックにこだわらなければ、F12キーなら、普通の画面でもタグジャンプ出来ます。<br>ありがとうございます。おかげさまで「１の方法」でgrepウインドウにタグ情報を（PerlScriptマクロで）貼り付ける事が出来るようになりました。<br>具体的には以下の手順で実現しました。<br>（１）現在のクリップボードの内容を保存<br>（２）クリップボードに作成したタグ情報をコピー<br>（３）適当にgrep<br>（４）grepウインドウをアクティブに<br>（５）sleepで少し待つ<br>（６）sendkeyで「全て選択」「貼り付け」(^a^v)<br>（７）貼り付けが完了するまで適当な時間待つ<br>（８）クリップボードに保存した内容を戻す（書き込む）<br>（注）クリップボードは「Win32::Clipboard」オブジェクトを使用<br><br>このような力技はあまり好きではありませんが、何故かダブルクリックへのこだわりが抜けないものですからやむを得ません。<br>ただ（５）の待ち時間が微妙で短くすると編集中のウインドウに貼りついてしまい冷や汗ものですし、長くすると待ちきれずに他のウインドウをクリックしてしまった場合にロスしたり上書きしたりします。また（７）も微妙です。<br>（確実な方法は何か無いのでしょうか？どなたか教えてください）<br><br>ところで、マクロのヘルプの「PerlScriptについて」にある「KeySend.pls」サンプルの「$WshShell-&gt;Sleep( 3000 );」の命令は３秒待つどころか１瞬で通過してしまい貼り付けミスが多発しましたのでperl自身のsleep命令（又はselect命令）に置き換えました。<br>正確には「$WScript-&gt;Sleep( 3000 );」だと思うのですが、$WScriptが使えないのでエラーになります。しかし、「$WshShell-&gt;Sleep( 3000 );」がエラーにもならず黙って無視してくれるのには困りました。（何か設定でもあるのかナ？）<br></div></section>
    <ul><li><section><h1 id=6177>
    <span class="no">[6177]</span>
    <a class="thread-title" href="#6177">Re3:タグファイルを開く方法は？</a>
    <span class="author">すい</span>
    <time datetime="2007-07-30T22:41:37">2007年07月30日 22:41</time></h1>
    <div class="body">&gt;ただ（５）の待ち時間が微妙で短くすると編集中のウインドウに貼りついてしまい冷や汗ものですし、長くすると待ちきれずに他のウインドウをクリックしてしまった場合にロスしたり上書きしたりします。また（７）も微妙です。<br>&gt;（確実な方法は何か無いのでしょうか？どなたか教えてください）<br><br>(4) で、どうやってアクティブにしているのでしょう？<br><br>もし、Grepウィンドウのウィンドウハンドルを調べてやっているなら、<br>(6) で sendkey なんぞでキー操作を送るような事はせず、そのウィンドウハンドルあてに<br>SendMessage で直接コマンドを送っちゃった方が確実かと。<br><br>sleep も不要になるかもしれませんし、キー割り当てが変更されても影響されません。<br># 「(3)適当にGrep」が完了するまでは待たなくては駄目かも。<br><br>そもそも Grepウィンドウをアクティブにする必要も無くなるのではないかと。<br><br>↓こんなの<br>SendMessage( Grepのウィンドウハンドル , 0x0111 , 30401 , 0 )    //すべて選択<br>SendMessage( Grepのウィンドウハンドル , 0x0111 , 30604 , 0 )    //貼り付け(クリップボードから貼り付け)<br><br>・30401 が F_SELECTALL 「すべて選択」<br>・30604 が F_PASTE      「貼り付け」<br>です。<br><br>これらのコマンドはサクラエディタのソース中の<br>ssrc_2007-07-08\sakura_core\Funccode.h を参照すれば分かります。<br><br># もっとも perl から SendMessage するのは面倒か？<br></div></section>
    <ul><li><section><h1 id=6178>
    <span class="no">[6178]</span>
    <a class="thread-title" href="#6178">Re4:タグファイルを開く方法は？</a>
    <span class="author">すい</span>
    <time datetime="2007-07-30T23:16:22">2007年07月30日 23:16</time></h1>
    <div class="body">言い忘れた件、追加。<br><br>0x0111 は WM_COMMAND で、メニューなどのコマンドを送る場合の合図。<br><br>あと、SendMessage は、コマンドを送られたウィンドウが処理完了するまで待つので、<br><br>&gt;（７）貼り付けが完了するまで適当な時間待つ<br>　　 チョキチョキチョキ<br>　　　　"(V)．．(V)"<br>　　　　 ミ( 略 )ミ<br>&gt;また（７）も微妙です。<br><br>も解決するんじゃないかなぁ、と。<br><br>エディタを外部から操作するなら SendMessage がお勧めよ。<br></div></section>
    </li><li><section><h1 id=6181>
    <span class="no">[6181]</span>
    <a class="thread-title" href="#6181">Re4:タグファイルを開く方法は？</a>
    <span class="author">see</span>
    <time datetime="2007-08-01T08:04:01">2007年08月01日 08:04</time></h1>
    <div class="body">すいさん（さん）アドバイスありがとうございます。<br>SendMessageはかなりハードルが高いのでこれからじっくり腰を落ち着けて勉強します。<br><br>&gt; (4) で、どうやってアクティブにしているのでしょう？<br>→grepウインドウは検索条件がタイトルに表示されるのでダミーのgrepで指定した検索条件をWScript.ShellのAppActivateのタイトルに指定しています。ウィンドウハンドルを扱うほど技術力がありませんので・・・<br><br>&gt; # 「(3)適当にGrep」が完了するまでは待たなくては駄目かも。<br>ひょっとしてgrepは完了まで待たない？という事で少しテストしたところやはり色々間違っていました。<br>・AppActivateの失敗を考慮していなかった。失敗の場合にリトライさせることで（５）の「sleepで少し待つ」処理は不要。<br>・その代わりに「適当にGrepが完了する」までは待たなければならない。（完了しなくても制御は次の命令に移る）<br>これを踏まえ手順を以下のように修正しました。<br>（１）現在のクリップボードの内容を保存<br>（２）作成した（或いは読み込んだ）タグ情報をクリップボードにコピー<br>（３）適当にgrep<br>（４）grep（結果）ウインドウがアクティブになるまで待つ（起動確認）<br>（５）「grep実行中」ウインドウが消える（アクティブがエラーになる）まで待つ<br>（６）grep（結果）ウインドウをアクティブに<br>（７）ほんの少し待たせる（0.1秒程度待たせなければやはり不安定）<br>（８）sendkeyで「全て選択」「貼り付け」「先頭へ」(^a^v^{HOME})<br>（９）貼り付けが完了するまで適当な時間待つ（0.1秒程度でほぼOK）<br>（10）（１）で保存した内容をクリップボードに戻す（書き込む）<br>これで安全を見て余分にsleepする必要もなくなってかなり早くなるとともに動作も安定しました。<br>同一のタイトルのウインドウがあってはならないなど制約がまだまだありますが何とか実用レベルになりました。<br>根本的な解決（更なる安定化、制約の解除）はターゲットを特定した「SendMessage」を使う、という事で今後の課題にします。<br><br>【開発しておられる方へ】<br>　やはりタグファイルの読み込みは正式サポートがあった方がいいんじゃないかと思いますので、いつか実現していただければありがたく思います。</div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></body></html>